package com.nuyoah.controller;

import com.nuyoah.common.lang.Result;
import com.nuyoah.utils.AliOssUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

/**
 * 图片上传控制器，负责处理与图片上传相关的请求。
 */
@RestController
@RequestMapping("/image")
public class imageUploadController {

    /**
     * 处理图片上传请求。
     * 使用POST请求方法，映射到/upload路径。
     *
     * @param file 上传的图片文件，通过MultipartFile类型接收。
     * @return 返回一个包含上传图片URL的结果对象。
     * @throws IOException 如果读取文件流时发生错误，抛出此异常。
     */
    @PostMapping("/upload")
    public Result upload(MultipartFile file) throws IOException {
        // 获取原始文件名
        String originalFilename = file.getOriginalFilename();
        // 生成唯一的文件名，以避免文件覆盖
        String filename = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
        // 将文件上传到阿里云OSS，并返回文件的URL
        String image = AliOssUtil.uploadFile(filename,file.getInputStream());
        // 返回上传成功的结果，包含文件的URL
        return Result.succ(image);
    }
}

